


package com.UMLife.me.action;

import com.UMLife.me.global.Global;
import com.UMLife.me.model.GetQuestionsModel;
import com.UMLife.me.ui.QuestionUI;
import com.UMLife.me.ui.TipsUI;
import de.enough.polish.ui.Alert;
import de.enough.polish.ui.Command;
import de.enough.polish.ui.Display;
import de.enough.polish.ui.ImageItem;
import de.enough.polish.ui.Item;
import de.enough.polish.ui.ItemCommandListener;





/**
 * Description
 * <p>
 * 这个类用来对QuestionUI界面上发生的事件进行处理，具体过程为：
 * <p>
 * <li>1.在用户点击go图标按钮时，进行go的action处理，处理结果为：从Model获得下一题的 <br>
 * 题目，对QuestionUI进行设置。在这里,由于QuestionUI是一个框架，所以没有必要重新建立 <br>
 * QuestionUI，直接利用传递进来的参数QuestionUI即可。
 * <p>
 * <li>2.用户在点击Tips图标按钮时，进行tips的action处理，处理结果为：从Global获得 <br>
 * TipsUI，然后对TipsUI进行设置， 设置应当显示的tips信息。
 */

public class QuestionAction implements ItemCommandListener
{
	public QuestionAction(QuestionUI ui, ImageItem tips, ImageItem go)
	{
		
		this.tips = tips;
		this.ui = ui;
		tips.setDefaultCommand(Global.getCmdOk());
		tips.setItemCommandListener(this);
		this.go = go;
		go.setDefaultCommand(Global.getCmdOk());
		go.setItemCommandListener(this);
		this.display = Global.getGlobalDisplay();
		this.model = Global.getQuestionModel();
		
	}
	
	/**
	 * Description：
	 * 处理两个事件，该事件都是对第二个问题之后的内容进行设置。
	 */
	public void commandAction(Command c, Item i)
	{
		
		if (i == this.tips)
		{
			this.tipsAction();
		}
		if (i == this.go)
		{
			
			this.goAction();
			
		}
		
	}
	
	/**
	 * Description：
	 * 从第二题进行设置。
	 */
	private void goAction()
	{
		
		// TODO 现在不能进行网络连接，故现在采用测试方式。
		/*
		 * 这里是完成的语句。
		 * this.index++;
		 * this.model.setQuestionId(this.index);
		 * this.ui.setQuestion(this.model.getQuestion());
		 * this.ui.setAnswer(new String[] { this.model.getAnswerA(),
		 * this.model.getAnswerB(), this.model.getAnswerC() });
		 */
		//这里是测试语句：
		this.index++;
		Alert alert = Global.getTestAlert();
		this.display.setCurrent(alert, this.ui);
		
	}
	
	private void tipsAction()
	{
		// TODO 现在不能进行网络连接，故现在采用测试方式。
		/*
		 * 这里是完成的语句。
		 * this.tipsUI = Global.getTipsUI();
		 * this.tipsUI.setTips(this.model.getTips());
		 * this.display.setCurrent(this.tipsUI);
		 */
		//这里是测试语句：
		Alert alert = new Alert("测试说明：");
		alert.setInfo("由于目前网络功能无法实现，现在采用测试模式以检验各个界面工作的正常性，故现在采用一个默认的页面作为链接");
		if (this.index == 1)
		{
			this.tipsUI = Global.getTipsUI();
		}
		this.display.setCurrent(alert, this.tipsUI);
	}
	
	private Display				display;
	
	private ImageItem			go;
	
	private GetQuestionsModel	model;
	
	private ImageItem			tips;
	
	private TipsUI				tipsUI;
	
	private QuestionUI			ui;
	
	int							index	= 1;	//正在进行的题号。	
												
}
